﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BaseEntities;

namespace DataAccess
{
    public class WithdrawDataAccess
    {
        public static decimal minValue = 50000;
        public static decimal maxValue = 3000000;
        //kiểm tra số dư tài khoản

        public static decimal getBalance(Card card)
        {
            return DataAccess.ExeStoredToDecimal("checkBalance", "@CardNo", card.CardNo);
        }

        //kiểm tra số tiền nhập vào so với số tiền trong tài khoản

        public static bool CheckWithdrawCash(decimal amount, Card card)
        {
            if (amount < getBalance(card))
                return true;
            else
                return false;
        }
        // kiểm tra số tiền nhập vào so với số tiền min và max
        public static bool CheckCashWithMinMaxValue(decimal amount, Card card)
        {
            if ((amount > minValue) && (amount < maxValue))
                return true;
            return false;
        }
        // kiểm tra số tiền nhập vào có chia hết cho 50 hay không
        public static bool CheckCashWithMod(decimal amount, Card card)
        {
            if (amount % 50000 == 0)

                return true;
            else
                return false;
        }
        // kiểm tra số tiền trong cây ATM
        public static decimal GetAllMoney()
        {
            return DataAccess.ExeStoredToDecimal("getAllmoney");
        }
        // cập nhật lại số dư tài khoản
        public static bool UpdateBalance(decimal amount, Card card, Account account)
        {
            return DataAccess.ExeStoredWithParamToBool("updatebalance", "@CardNo", card.CardNo, "@AccountID", account.AccountID, "@Amount", amount);
        }
        //cap nhat lai so tien trong cay
        // public static bool UpdateMoneyATM()
        // { 

        // }
        // ghi lich su
        public static bool WriteLog(ATM atm, Card card, decimal amount)
        {
            try
            {
                DataAccess.ExeNonStored("writelog", "@ATMID", atm.ATMID, "@CardNo", card.CardNo, "@Amount", amount);
                return true;
            }
            catch
            {
                return false;
            }
        }
        public static int returnAccountID(Card card)
        {
            return DataAccess.ExeStoredToInt("returnAccountID", "@CardNo", card.CardNo);
        }
    }
}
